pidstat可以對某個進程進行全面具體的追蹤,棧空間、缺頁情況、主被動切換等信息。這個命令最有用的參數是-t,可以將進程中各個線程的詳細信息羅列出來。
-r:顯示缺頁錯誤和內存使用狀況,缺頁錯誤是程序需要訪問映射在虛擬內存空間中但是還尚未被加載到物理內存中的一個分頁,缺頁錯誤兩個主要類型是:
1、√ minflt/s指的minor faults,當需要訪問的物理頁面因為某些原因已經存在于物理內存中了,只是在當前進程的頁表中沒有引用,MMU只需要設置對應的entry即可。
2、√ majflt/s指major faults,MMU需要在當前可用物理內存中申請一塊空閑的物理頁面,然后從外部加載數據到該物理頁面中,并設置好對應的entry。
-s:棧使用狀況,包括 StkSize 為線程保留的棧空間,以及 StkRef 實際使用的棧空間。使用ulimit -s發現CentOS 6.x上面默認棧空間是10240K,而 CentOS 7.x、Ubuntu系列默認棧空間大小為8196K。
-u:CPU使用率情況,參數同前面類似。
-w:線程上下文切換的數目,還細分為cswch/s因為等待資源等因素導致的主動切換,以及nvcswch/s線程CPU時間導致的被動切換的統計。
了解更多服務器及資訊,請關注夢飛科技官方網站,感謝您的支持!